package upc.dew.inscripcionalumnos.dao.impl;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import upc.dew.inscripcionalumnos.dao.LoginDAO;
import upc.dew.inscripcionalumnos.exception.LoginException;
import upc.dew.inscripcionalumnos.exception.ServiceException;
import upc.dew.inscripcionalumnos.model.Usuario;

public class LoginDAOImpl extends HibernateDaoSupport implements LoginDAO
{   
    public LoginDAOImpl(SessionFactory sessionFactory)
    {
        setSessionFactory(sessionFactory);
    }
    
    public Usuario login(String username, String password) throws LoginException, ServiceException
    {
        Session session = getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query = session.getNamedQuery("obtenerusuario");
        query.setString("usuario", username);
        query.setString("password", password);
        Usuario usuario = (Usuario) query.uniqueResult();
        session.close();

        if(usuario != null)
        {
            return usuario;
        }
        else
        {
            throw new LoginException("El usuario '" + username + "' no existe.");
        }
    }
}